package com.study.app.domain.bo;

import com.study.common.core.domain.BaseEntity;
import com.study.common.core.validate.AddGroup;
import com.study.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
 * 车辆分享业务对象 vehicle_sharing
 *
 * @author study
 * @date 2024-05-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AppVehicleSharingBo extends BaseEntity {

    /**
     * 分享ID
     */
    @NotNull(message = "分享ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 车辆编码
     */
    @NotBlank(message = "车辆编码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vehicleCode;

    /**
     * 受邀人code
     */
    @NotBlank(message = "受邀人code不能为空", groups = { EditGroup.class })
    private String inviteeCode;

    /**
     * 受邀人身份备注
     */
    @NotBlank(message = "受邀人身份备注不能为空")
    private String inviteeRemark;

    /**
     * 设备型号
     */
    @NotBlank(message = "设备型号不能为空", groups = {  EditGroup.class })
    private String deviceModel;

    /**
     * 是否活跃车辆(0否，1是)
     */
    @NotNull(message = "是否活跃车辆(0否，1是)不能为空")
    private Integer isActive;

    /**
     * 当前分享状态(0未确认，1已分享.2回绝)
     */
    @NotNull(message = "当前分享状态(0未确认，1已分享.2回绝)不能为空", groups = {  EditGroup.class })
    private Integer sharingState;

    /**
     * 车主是否禁用行程轨迹查看(0否，1是)
     */
    @NotNull(message = "车主是否禁用行程轨迹查看(0否，1是)不能为空")
    private Integer isstudyTrack;

    /**
     * 车主是否禁用告警同步推送给受邀人(0否,1是)
     */
    @NotNull(message = "车主是否禁用告警同步推送给受邀人(0否,1是)不能为空")
    private Integer isSecurityTrack;

    /**
     * 分享时间
     */
    @NotNull(message = "分享时间不能为空")
    private Date sharingTime;
    /**
     * 受邀人手机号
     */
    @NotNull(message = "受邀人手机号不能为空", groups = {AddGroup.class })
    private String inviteePhoneNumber;

    /**
     * 消息id
     */
    private Long notificationId;
    /**
     * 修改车辆：false:修改车辆分享状态，true:修改车辆分享备注等
     */
    @NotNull(message = "修改标识符不能为空",groups = {EditGroup.class })
    private Boolean isModify;


}
